<?php
/**
* Outils de conversion des menus en php (smartbok v1) en fichier xml exploitable par la version 2 de smartbok.
* 
* PHP version 5.1.6
*
* @package   Smartbok
* @author    Christophe Hebet <christophe.hebet@dgfip.finances.gouv.fr> 
* @copyright 2013 - DGFiP
*/
error_reporting(E_ALL);
ini_set('display_errors','On');

$fichierPhp = '../../menu.inc.php';
$variablePhp = 'aElements';
$fichierXml = '../../menu.xml';
$tabSkipId = array();


function convertirMenuPhp2Xml($fichier, $variable) {
    include $fichier;
    global $tabSkipId;
    $elementsPhp = $$variable;
    $xml='';
    foreach ($elementsPhp as $key => $element) {
        if (in_array($key, $tabSkipId) === false) {
            $xml .= traiterElement($element, $elementsPhp);
        }
    }
    
    return '<menu>'.$xml.'</menu>'; 
}

function traiterElement($element, $elementsPhp) {
    global $tabSkipId;
    $xml = '<element><libelle>'.utf8_encode(html_entity_decode($element['libelle'])).'</libelle>';
    if (strlen($element['lien']) > 0) {
        $xml.= '<lien>'.$element['lien'].'</lien>';
    }
    if (isset($element['profils']) === true) {                
        $xml.= '<profils>';
        foreach ($element['profils'] as $profil) {
            $xml.= '<profil>'.$profil.'</profil>';
        }
        $xml.= '</profils>';
    }    
    if (count($element['enfants']) > 0) {
        $xml.= '<enfants>';
        foreach($element['enfants'] as $enfant) {
            $xml.= traiterElement($elementsPhp[$enfant], $elementsPhp);
            
            $tabSkipId[] = $enfant;
        }
        $xml.= '</enfants>';
    }
    $xml.= '</element>';
       
    return $xml;
}

if (file_put_contents($fichierXml, convertirMenuPhp2Xml($fichierPhp, $variablePhp)) !== false) {
    echo 'création du fichier réussie';
}
else {
    echo 'création fichier échouée';
}
